package com.fumin.dao;

import com.fumin.beans.PageQuery;
import com.fumin.model.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysUserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysUser record);

    int insertSelective(SysUser record);

    SysUser selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysUser record);

    int updateByPrimaryKey(SysUser record);

    /**
     * 根据关键字查询SysUser
     * @param keyword 可以为电话或者邮箱
     * @return
     */
    SysUser findByKeyword(@Param("keyword") String keyword);

    /**
     * 检查邮箱是否存在
     * @param mail
     * @param id
     * @return
     */
    int checkEmailExist(@Param("mail") String mail,@Param("id") Integer id);

    /**
     * 检查电话是否存在
     * @param telephone
     * @param id
     * @return
     */
    int checkTelePhoneExist(@Param("telephone") String telephone,@Param("id") Integer id);

    /**
     * 获取部门的用户个数
     * @param deptId 部门ID
     * @return
     */
    int countByDeptId(@Param("deptId") int deptId);

    /**
     * 分页查找部门下的用户
     * @param deptId 部门ID
     * @param page 分页对象
     * @return
     */
    List<SysUser> getPageByDeptId(@Param("deptId") int deptId, @Param("page") PageQuery page);

    /**
     * 根据用户ID集合查找用户对象集合
     * @param idList 用户ID集合
     * @return
     */
    List<SysUser> getByIdList(@Param("idList") List<Integer> idList);

    /**
     * 获取所有用户列表
     * @return
     */
    List<SysUser> getAll();
}